JavaScript - 1 基础语法

常量

const x = “123”;//常量,定义后不能修改

作用域:var 定义的 i 变量是一个全局变量

let 声明的变量:块作用域

作用域

一、ES5中,callbacks中的return i*2,是对变量的引用,而不是对函数变量值的引用。函数体中是一个变量,而不是一个值。

二、用let声明的变量有块作用域的概念,这个时候的闭包取决于当前的块作用域,会将当前值保存,供后面的闭包使用。

三、es6:{}表示一个新的作用域,{}可以对作用域进行隔离。

es5中要执行立即执行函数((function(){},()),才能对作用域进行隔离。

###箭头函数

ES6箭头函数()=>{ } 替代 ES5中function a(){ }结构

  1. 箭头函数中this指向—是对象被定义时this的指向
  2. 普通函数的this指向—指向被调用对象

默认参数

ES5,ES6可变参数的处理 求和例子

ES5利用 Array.prototype.slice.call(arguments) 获得 参数列表

ES6 直接是(扩展运算符 …)+参数名 可直接获取参数列表 f(…a){ }

扩展运算符合并数组 … 代表自己

对象代理

对象代理多用于数据保护。

ES3 this.set中判读if是某个属性不能复制;ES5数据只读;ES6 Proxy对象代理。

1
2
3
4
5
6
7
8
let person = new Proxy(Person,{
get(target,key){
return target[key];
},
set(target,key,value){
if(key != 'sex'){
target[key]=value;
}

set和map

其他:

image-20190421183455110